using System;
using System.ComponentModel.DataAnnotations;

namespace Sheep_Breeding.Write.Api.production_a_DTO
{
    /// <summary>
    /// 母羊配种编辑DTO
    /// </summary>
    public class UpdateEweMatingDto
    {
        /// <summary>
        /// 配种编号（主键）
        /// </summary>
        [Required(ErrorMessage = "配种编号不能为空")]
        public string BreedingId { get; set; }

        /// <summary>
        /// 配种日期
        /// </summary>
        [Required(ErrorMessage = "配种日期不能为空")]
        public DateTime BreedingDate { get; set; }

        /// <summary>
        /// 上一次配种日期
        /// </summary>
        public DateTime LastBreedingDate { get; set; }

        /// <summary>
        /// 耳号
        /// </summary>
        [Required(ErrorMessage = "耳号不能为空")]
        [StringLength(50, ErrorMessage = "耳号长度不能超过50个字符")]
        public string EarNumber { get; set; }

        /// <summary>
        /// 种母品种
        /// </summary>
        [Required(ErrorMessage = "种母品种不能为空")]
        [StringLength(100, ErrorMessage = "种母品种长度不能超过100个字符")]
        public string FemaleBreed { get; set; }

        /// <summary>
        /// 种母类型（基础母羊/经产母羊等）
        /// </summary>
        [Required(ErrorMessage = "种母类型不能为空")]
        [StringLength(50, ErrorMessage = "种母类型长度不能超过50个字符")]
        public string FemaleType { get; set; }

        /// <summary>
        /// 首配公羊
        /// </summary>
        [Required(ErrorMessage = "首配公羊不能为空")]
        [StringLength(50, ErrorMessage = "首配公羊长度不能超过50个字符")]
        public string FirstMaleSheep { get; set; }

        /// <summary>
        /// 公羊品种
        /// </summary>
        [StringLength(100, ErrorMessage = "公羊品种长度不能超过100个字符")]
        public string ExtraMaleSheep { get; set; }

        /// <summary>
        /// 配种方式（自然交配/人工授精等）
        /// </summary>
        [Required(ErrorMessage = "配种方式不能为空")]
        [StringLength(50, ErrorMessage = "配种方式长度不能超过50个字符")]
        public string BreedingMethod { get; set; }

        /// <summary>
        /// 种母发情类型
        /// </summary>
        [StringLength(50, ErrorMessage = "种母发情类型长度不能超过50个字符")]
        public string FemaleEstrusType { get; set; }

        /// <summary>
        /// 配种环节
        /// </summary>
        [StringLength(50, ErrorMessage = "配种环节长度不能超过50个字符")]
        public string BreedingStage { get; set; }

        /// <summary>
        /// 配种栋舍
        /// </summary>
        [StringLength(50, ErrorMessage = "配种栋舍长度不能超过50个字符")]
        public string BreedingHouse { get; set; }

        /// <summary>
        /// 配种栏位
        /// </summary>
        [StringLength(50, ErrorMessage = "配种栏位长度不能超过50个字符")]
        public string BreedingPen { get; set; }

        /// <summary>
        /// 体重（公斤）
        /// </summary>
        [Range(0, 1000, ErrorMessage = "体重必须在0-1000公斤之间")]
        public decimal Weight { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        [StringLength(500, ErrorMessage = "备注长度不能超过500个字符")]
        public string Remark { get; set; }

        /// <summary>
        /// 修改人
        /// </summary>
        [Required(ErrorMessage = "修改人不能为空")]
        [StringLength(50, ErrorMessage = "修改人长度不能超过50个字符")]
        public string Modifier { get; set; }
    }
} 